package utils;

import org.dozer.DozerBeanMapper;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

/**
 * @author gaofeng
 * @date 2022年09月11日 15:13
 */
public class DozerUtil {

    public DozerUtil() {

    }

    public static DozerBeanMapper mapper = new DozerBeanMapper() ;

    /**
     * 转换对象和类型
     * @param source 目标对象
     * @param destClass 目标类型对象
     * @return T
     */
    public static <T> T map(Object source, Class<T> destClass) {
        return mapper.map(source, destClass) ;
    }

    /**
     * 转换Collection中的对象类型
     * @param sourceList 需要转换的集合对象
     * @param destClass 目标类型对象
     * @return java.util.List<T>
     */
    public static <T> List<T> map(Collection<T> sourceList, Class<T> destClass) {
        List<T> results = new ArrayList<>() ;
        if (CollectionUtils.isEmpty(sourceList)) {
            return results ;
        }
        for (T temp : sourceList) {
            results.add(mapper.map(temp, destClass)) ;
        }
        return results ;
    }

    /**
     * 拷贝对象source的属性的值到dest对象中
     * @param source 目标对象
     * @param dest 结果
     */
    public static void copyProperties(Object source, Object dest) {
        mapper.map(source, dest);
    }



}
